Custom Hooks as Presenter という考え方
さて、具体的に自分が何に困っているかというと、次の観点を担保したテストを書くのが難しいということだ。
Bug Repellent: バグ避け
複雑性が高くなりがちのためバグ発生の可能性が高くなっている
Defect Localization: 欠陥の特定
表示とロジックのどちらにバグがあるのか、ロジックのどこが原因なのかわかりづらい
Fully Automated Test: 完全自動化されたテスト
スナップショットテスティングなどは成功か失敗かの判断が必要
Simple Tests: シンプルなテスト
DOM ベースのテストはシンプルとなりづらい
Separation of Concerns: 関心の分離
スナップショットテスティングは Hooks も同時にテスト対象としてしまう
Robust Test: 変更に強いテスト
表示とロジック、どちらが変わってもテストを修正しなければならない可能性が生じる
これらは xUnit Test Patterns において、ユニットテストが目指すべきものとして紹介されている概念の一部だ。
より上位概念であるコンポーネント設計を意識している